package com.grace.dao;

import com.grace.model.SysAclModule;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysAclModuleMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysAclModule record);

    int insertSelective(SysAclModule record);

    SysAclModule selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysAclModule record);

    int updateByPrimaryKey(SysAclModule record);

    /**
     * 用于校验同一模块下是否有相同的名称
     */
    int countByNameAndParentId(@Param("parentId") Integer parentId, @Param("name") String name, @Param("id") Integer id);
    
    /**
     * 获取子层级的所有内容
     */
    List<SysAclModule> getChildAclModuleListByLevel(String level);

    /**
     * 批量更新子层级
     */
    void batchUpdateLevel(@Param("aclModuleList") List<SysAclModule> aclModuleList);

    /**
     * 获取所有权限模块
     */
    List<SysAclModule> getAllAclModule();

    /**
     * 判断该权限模块下是否存在子权限模块
     */
    int countByParentId(Integer aclModuleId);
}